home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / NMK / Recorders / RScrollerVars.m < prev    next >
Text File  |  1995-06-12  |  2KB  |  161 lines

  1. /***** RScrollerVars.m -- ScrollerCover variable holder object implementation
  2.     NeXTstep Measurement Kit
  3.     by Alex Meyer <ameyer@phoenix.Princeton.EDU>
  4.     for computer science senior thesis
  5.     24 April 1992 -- created
  6. *****/
  7.  
  8. #import <stdlib.h>
  9. #import <stdio.h>
  10. #import <string.h>
  11. #import <appkit/Application.h>
  12. #import "RScrollerVars.h"
  13.  
  14. @implementation RScrollerVars
  15.  
  16. - init    /* should not be used */
  17. {
  18.     [self free];
  19.     return (nil);
  20. }
  21.  
  22.  
  23. - initString:(const char *)str
  24.     tag:(int)tg
  25.     rect:(const NXRect *)rect
  26. {
  27.     int i;
  28.     char temp[512];
  29.  
  30.     [super init];
  31.     linker = NXGetNamedObject(LINKERNAME,NXApp);
  32.     sprintf(temp,"%s|%d|%f|%f|%f|%f",str,tg,
  33.         rect->origin.x,rect->origin.y,
  34.         rect->size.width,rect->size.height);
  35.     key = NXUniqueString(temp);
  36.     lastHitTime = 0;
  37.     stats.numHits = 0;
  38.     stats.numKNOB = 0;
  39.     stats.numDECPAGE = 0;
  40.     stats.numINCPAGE = 0;
  41.     stats.numDECLINE = 0;
  42.     stats.numINCLINE = 0;
  43.     stats.numKNOBSLOT = 0;
  44.     stats.timeIn = 0;
  45.     stats.timeBetween = 0;
  46.     for (i = 0;i < SCROLLERHIST;++i)
  47.         stats.histogram[i] = 0;
  48.     [linker connect:self];
  49.     return (self);
  50. }
  51.  
  52.  
  53. - incHits
  54. {
  55.     ++stats.numHits;
  56.     return (self);
  57. }
  58.  
  59.  
  60. - incKNOB
  61. {
  62.     ++stats.numKNOB;
  63.     return (self);
  64. }
  65.  
  66.  
  67. - incDECPAGE
  68. {
  69.     ++stats.numDECPAGE;
  70.     return (self);
  71. }
  72.  
  73.  
  74. - incINCPAGE
  75. {
  76.     ++stats.numINCPAGE;
  77.     return (self);
  78. }
  79.  
  80.  
  81. - incDECLINE
  82. {
  83.     ++stats.numDECLINE;
  84.     return (self);
  85. }
  86.  
  87.  
  88. - incINCLINE
  89. {
  90.     ++stats.numINCLINE;
  91.     return (self);
  92. }
  93.  
  94.  
  95. - incKNOBSLOT
  96. {
  97.     ++stats.numKNOBSLOT;
  98.     return (self);
  99. }
  100.  
  101.  
  102. - timeFrom:(double)time0
  103.     to:(double)time1
  104. {
  105.     stats.timeIn += time1 - time0;
  106.     if (lastHitTime)
  107.         stats.timeBetween += time0 - lastHitTime;
  108.     lastHitTime = time1;
  109.     return (self);
  110. }
  111.  
  112.  
  113. - incHist:(int)ind
  114. {
  115.     ++stats.histogram[ind];
  116.     return (self);
  117. }
  118.  
  119.  
  120. - (unsigned)type
  121. {
  122.     return (TM_SCROLLER);
  123. }
  124.  
  125.  
  126. - (NXAtom)key
  127. {
  128.     return (key);
  129. }
  130.  
  131.  
  132. - (NXAtom)desc
  133. {
  134.     return (NXUniqueString("{iiiiiiidd[10i]}"));
  135. }
  136.  
  137.  
  138. - (unsigned)statsSize
  139. {
  140.     return (sizeof(stats));
  141. }
  142.  
  143.  
  144. - (void *)copyOfStats
  145. {
  146.     void *cpy;
  147.  
  148.     cpy = malloc(sizeof(stats));
  149.     memcpy(cpy,&stats,sizeof(stats));
  150.     return (cpy);
  151. }
  152.  
  153.  
  154. - copyInStats:(void *)NewStats
  155. {
  156.     memcpy(&stats,NewStats,sizeof(stats));
  157.     return (self);
  158. }
  159.  
  160. @end
  161.